簡體   English   中英

TypeError:無法讀取未定義(Promise)(node.js)的屬性“ then”

[英]TypeError: Cannot read property 'then' of undefined (Promise) (node.js)

當我的API調用返回承諾的addSub() ,內部的addSub()可以將數據返回給外部的addSub() ,但是外部的addSub()不能將數據返回給AP,同時提供以下輸出。

a + b:9

addSub數據:9

贊成:承諾{8}

TypeError:無法讀取未定義的屬性“ then”

function add(a, b){
  console.log("a+b: ",a+b)
  return new Promise((resolve, reject) => {
    resolve(a+b)
    })
}

function addSub(){
  add(4,5)
    .then((data) => {
        console.log("addSub data: ", data)
        var pro = new Promise((resolve, reject) => {
          resolve(data - 1)
        })
        console.log("pro: ",pro)
        return pro
    })
}

app.get('/promise', function (req, res){
    addSub()
    .then((data) => {
        console.log("final res: ", data)
        res.send({"data": data})
    })
});

您必須在add(4,5)之前添加一個返回值:

...    
function addSub(){
            return add(4,5)
            .then((data) => {
            ...

 function add(a, b){ console.log("a+b: ",a+b) return new Promise((resolve, reject) => { resolve(a+b) }) } function addSub(){ return add(4,5) .then((data) => { console.log("addSub data: ", data) var pro = new Promise((resolve, reject) => { resolve(data - 1) }) console.log("pro: ",pro) return pro }) } addSub() .then((data) => { console.log("final res: ", data) res.send({"data": data}) }) 

只需在addSub函數內的調用add函數之前放一個return語句

function addSub() {
    return add(4, 5)
        .then((data) => {
            console.log("addSub data: ", data)
            var pro = new Promise((resolve, reject) => {
                resolve(data - 1)
            })
            console.log("pro: ", pro)
            return pro
        })
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM