将异步函数的值设置为.then的返回值

时间:2018-10-24 19:17:05

标签: javascript ecmascript-6 promise es6-promise

编辑:也许我简化了我的例子。让我再试一次

file1.js
import conditonFunction from './conditonFunction'
console.log(conditonFunction()) 


file2.js
import asyncFunction from './asyncFunction'


export const conditonFunction = () => {
  if (condition) {
 return 'this doesnt matter'
  } else {
    asyncFunction().then(res => {
      return res[0].whatever
    })
  }
}

如果不满足我的条件,我希望conditonFunction的记录值是res内的asyncFunction的值

我想念什么?

2 个答案:

答案 0 :(得分:1)

一种替代方法是使用async函数。

function asyncFunction() {
   return new Promise(function(resolve, reject) {
      setTimeout(function() {
        resolve(7);
      }, 2000);
   });
}

async function main() {
  var res = await asyncFunction(); 
  console.log(res);
}

main();
Wait for 2 seconds...

答案 1 :(得分:0)

您似乎正在寻找

asyncFunction().then(res => {
    return res[0].whatever;
}).then(console.log);

或者简单地

asyncFunction().then(res => {
    console.log(res[0].whatever);
});