小编Bis*_*dev的帖子

如何异步使用回调

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)

javascript node.js

5
推荐指数
1
解决办法
160
查看次数

理解显式承诺构造反模式

上一篇文章中强调的某些性能建议我参考stackoverflow 中的以下问题避免显式的 Promise 构造反模式

坦白说,我对 JS 和 Node 都是新手,也没有经常使用 Promise。我去读了那些文章,但要么我无法理解或无法联系,要么我对承诺的理解一直模糊/错误

所以我决定在新线程中提出这个问题并寻求帮助。

那么我在做什么以及为什么这样做

我正在创建帮助程序/通用函数,我可以用它来保持代码整洁,如果我想随时更改函数内部的任何内容,我不必手动更改每个函数。

这些是我制作的功能

//Find user by email Address 
const findUserByEmail = (emailAddress) => {
    return new Promise((resolve, reject) => {
     User.findOne({email: emailAddress}).then(response => {
        resolve(res)
      }).catch(error => {
        reject("Error in findUserByEmail", error);
      })
    })
}

//Create User 
const createNewUser = (newUserDetails) => {
    return new Promise((resolve, reject) => {
      new User({
         fullName: newUserDetails.fullName,
         email: newUserDetails.email,
         image: newUserDetails.image,
         gender: newUserDetails.gender,
         age: newUserDetails.age
      }).save().then((response) => { …
Run Code Online (Sandbox Code Playgroud)

javascript mongoose node.js promise

1
推荐指数
1
解决办法
725
查看次数

标签 统计

javascript ×2

node.js ×2

mongoose ×1

promise ×1