javascript - (JavaScript) 在其他函数的回调中执行函数

标签 javascript function callback

这是针对普通 JavaScript 的。我不希望一个函数在另一个函数完全完成后立即执行。现在我实际上已经有了一些可行的东西,但我认为它可以做得更好:

setTimeout(function () {
  // does things with the variables a, b(array) and c
}, 500);
function happySunshine(some inparameters){
  // calculates and sets variables a, b(array) and c
}

不幸的是,happySunshine 函数必须按顺序位于我的 setTimeout 函数之后,这是无法更改的。

现在这是可行的,因为 happySunshine 函数将在 setTimeout 设置为执行前等待的半秒内执行并完成其任务。

所以...我不想知道。有没有办法让一个函数在顺序中位于第一个,等到另一个函数(在顺序中靠后)完全完成后再进行它执行吗?

需要注意的是,这些函数不能位于同一范围内。

最佳答案

您可以从 happySunshine() 返回 Promise.resolve()Promise 构造函数,并将值设置为具有属性和值的对象abc

function happySunshine(/* some inparameters */){
  // calculates and sets variables a, b(array) and c
  // return new Promise(function(resolve, reject) {
       // do stuff
       // resolve({a:a, b:[], c:c});
  // });
  return Promise.resolve({a:a, b:[], c:c});
}

happySunshine(/* some inparameters */)
.then(function({a, b, c}) {
  // does things with the variables a, b(array) and c
})

关于javascript - (JavaScript) 在其他函数的回调中执行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43319140/

相关文章:

javascript - token "in"存在语法错误,需要标识符

c++ - 将递增/递减运算符传递给函数

c# - 绑定(bind) - 回调被调用两次

javascript - for 循环中的键/值对出现问题 : Cannot read property 'achievement' of undefined\n

javascript - 运行超时的 Mocha 测试永远不会完成

C++ 返回在函数范围内声明的引用

Python 堆栈内容在传递给函数时会被覆盖

objective-c - Objective-C 的 Swift 回调

Node.js 服务器处理请求回调函数在写入响应之前结束

php - 发送表单后如何在不刷新页面的情况下重新加载元素的内容(蛋糕方式)?