簡體   English   中英

數據來自twilio

[英]Data from twilio

 client.messages.list({ from: '123456786', limit: 1 }).then(messages => messages.forEach(m => console.log(odp = m.body)));

我試過:

function resolveAfter2Seconds() {
    return new Promise(resolve => {client.messages
        .list({
            from: '123456789',
            limit: 1
            })
        .then(messages => messages.forEach(m => m.body)); 
    });
  }
  
  async function asyncCall() {
    const result = await resolveAfter2Seconds();
    console.log(result)
  }
  asyncCall();

我用Twilio。我有這樣的代碼。 因此,來自給定號碼的最后一條消息顯示在控制台中。 我想將結果分配給一個變量,這樣我以后就可以使用“if”來執行操作。

不幸的是,它沒有被抓住。 我是這個問題的新手。 請幫忙。

這段代碼的問題是 Promise 沒有返回帶有 resolve 的值。 正確的代碼如下所示:

function resolveAfter2Seconds() {
  return new Promise(resolve => {
    client.messages
    .list({
      from: NUMBER,
      limit: 1
    })
    .then(messages => resolve(messages[0].body));
  });
}

async function asyncCall() {
  const result = await resolveAfter2Seconds();
  console.log(result)
}
asyncCall();

我注意到 function 名稱是resolveAfter2Seconds ,但不包括超時。 如果你不需要這個時間延遲,你也可以使用客戶端方法await ,而不需要自己構建 Promise。

const messages = await client.messages
    .list({
      from: NUMBER,
      limit: 1
    });
console.log(messages[0].body)

暫無
暫無

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

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