Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
3.4k views
in Technique[技术] by (71.8m points)

请问,如何返回函数中的promise的值

app.get('/', (req, res) => {
    function fn() {
        return new Promise(function (resolve, reject) {
            let value = 123;
            if (true) {
                resolve(value);
            } else {
                reject(error);
            }
        })
        .then(value => {
            return value
        });
    }
    console.log(fn1()); //这里的打印结果为promise
      
    res.send(fn1()); //这里返回结果为{}
     //预期想取得的值为value(123)
})

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
app.get('/', (req, res) => {
    function fn() {
        return new Promise(function (resolve, reject) {
            let value = 123;
            if (true) {
                resolve(value);
            } else {
                reject(error);
            }
        })
        .then(value => {
            // 应该在这里打印, 并且在这里 send
            // 可以保证打印出来的是 123,send 出去的也是 123,
            // 但恕我直言,这个 Promise 犹如脱裤子 fart —— 多此一举
            // 耐心等待,应该会有其他好心的答主详述 Promise 的正确用法
            // 甚至会引入 `async/await`
            console.log(value);
            return value
        });
        
        fn();
    }
})

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...