如何异步使用回调

Bis*_*dev 5 javascript node.js

console.log("before")

function g(p,callback){
    callback('1')
}

g(1,(re)=>{
    console.log(re);
})

console.log("after")
Run Code Online (Sandbox Code Playgroud)

结果是在之后的1之前.如何使函数调用异步意味着结果应该在1之后没有setTimeout函数

用例就像

我在函数内部有一个api调用,并在此函数调用后发送响应.但因为此函数被同步调用,发送响应被延迟.所以我想在api调用之前发送响应

console.log("before callback")

apiRes.url = [url];
apimanager.callfunc(requestBody, apiRes,(err,success)=>{
    console.log("success ",success)
    console.log("inside callback");
});

console.log("after callback")

return response.json(someresponse)
Run Code Online (Sandbox Code Playgroud)

Cer*_*nce 4

你可以使用Promise.resolve()

console.log("before")

function g(p, callback) {
  callback('1')
}

g(1, (re) => {
  Promise.resolve().then(() => {
    console.log(re);
  });
})

console.log("after")
Run Code Online (Sandbox Code Playgroud)