第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

同步調(diào)用 javascript promise

同步調(diào)用 javascript promise

我試圖在我的程序完成并發(fā)送郵件之前在數(shù)據(jù)庫(kù)中插入一條記錄。但問題是我認(rèn)為我的函數(shù)正在異步運(yùn)行,在我收到成功插入數(shù)據(jù)庫(kù)的成功消息之前,我的程序已完成并且 te 永遠(yuǎn)不會(huì)拋出錯(cuò)誤。以下是我嘗試過的。Client.insertUser(sendInfo)  .then(    function (Data) {      if (Data == null || Data.User == null || Data.isPersonaUpdated == false) {        $state.go('register.failed');      }    }  )  .catch(    function () {      $state.go('register.failed');    }  )客戶端.js_this.insertUser = function (sendInfo) {  var deferred = $q.defer();  $http({    method: 'POST',    url: Globals.userAuth ? 'InsertUser.go' : 'modules/guest/InsertUser.go',    data: sendInfo,    headers: {      'Content-type': 'application/json'    }  }).then(function successCallback(response) {    deferred.resolve(response.data);  }, function errorCallback(response) {    deferred.reject(response);  });  return deferred.promise;};Async并且await因?yàn)槲覀兪褂玫氖?ES6 而無(wú)法正常工作。關(guān)于如何使我的承諾調(diào)用同步的任何建議都會(huì)有所幫助。發(fā)送激活郵件正在調(diào)用不同的承諾,并且不是同一鏈的一部分。Client.sendAccountActivationMail(u).then(function(data) {            var isSuccess = angular.fromJson(data);            if (isSuccess) {            }         });
查看完整描述

1 回答

?
慕的地10843

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超8個(gè)贊

如果您從回調(diào)內(nèi)部返回一個(gè)非承諾值.then,那么它將自動(dòng)包裝在一個(gè)承諾中。這甚至適用于默認(rèn)返回值undefined.


這意味著您可以使用 if 語(yǔ)句有條件地創(chuàng)建用戶。


function logIn({ shouldCreateUser, username, emailAddress }) {

  console.log("In logIn...");

  return Promise.resolve()

    .then(() => {

      console.log("In first then...");

      if (shouldCreateUser) {

        return createUser(username); // !

      }

      // If control moves here, a promise is implicitly returned with a value of `undefined`

    })

    .then(() => {

      console.log("In second then...");

      return client.sendEmail(emailAddress); // send email to everyone

    })

    .then(() => {

      console.log("Continuing with application logic...");

    })

    .catch((err) => {

      console.error(err.message);

      //catch any unhandled promise exceptions

    });

}


function createUser(username) {

  console.log("In createUser...");

  return client

    .insertUser(username)

    .then((result) => {

      if (!result || !result.user || !result.isPersonaUpdated)

        throw new Error("User insertion failed");

      console.log("User created asynchronously ok...");

    })

    .catch((err) => {

      console.error("Error thrown in createUser...", err.message);

    });

}


const client = {

  insertUser() {

    return Promise.resolve().then(() => ({ user: {}, isPersonaUpdated: true }));

  },

  sendEmail() {

    console.log("Sending email...");

    return Promise.resolve().then(() =>

      console.log("Email sent asynchronously ok...")

    );

  }

};


// Try flipping the value of `shouldCreateUser`

logIn({ shouldCreateUser: true, 

        username: 'Fred Bloggs', 

        emailAddress: 'example@example.com' })

  .then(() => console.log("All done."));


查看完整回答
反對(duì) 回復(fù) 2023-05-11
  • 1 回答
  • 0 關(guān)注
  • 138 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)