我有2个功能。我使用then()
promise
方法进行链接。但我试图在第一个承诺发生后启动second
功能。但现在第二个函数调用为第一个。如何解决这个问题?
或我的代码有什么问题吗?
这是我的尝试:
var getData = function(){
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(42); //consoles as second
}, 5000);
})
}
var getDataMoreData = function(){
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(43); //consoles as first
}, 3000);
})
}
getData().then((data)=> console.log('Data', data)).then(getDataMoreData().then((data)=> console.log('data--', data )));
答案 0 :(得分:7)
.then
接受函数作为参数。当你这样做
.then(getDataMoreData()
.then((data) => console.log('data--', data))
);
,立即调用getDataMoreData()
(期望它将返回一个可以放入promise链的函数)。但getDataMoreData
不返回函数 - 它返回一个promise。
<{1>}中的任何函数立即调用立即执行,因为它尝试构建then
承诺链。只需在.then
中列出函数变量,而不是调用它:
then
&#13;