javascript - दकरण - हवाई टिकट प्रभारी रद्द



एक वादा एक हैंडलर में बनाया गया था लेकिन इसे से वापस नहीं किया गया था (1)

आप चेतावनी प्राप्त कर रहे हैं क्योंकि आप कर रहे हैं - जैसा कि कहते हैं - then हैंडलर से वादा नहीं लौट रहा है
जहां अस्वीकृति से आ रहा है, उसे पकड़ने और इसे प्रवेश करने के द्वारा सर्वश्रेष्ठ ट्रैक किया जाएगा। कोई स्टैक ट्रेस नहीं है कि आप (या आप का उपयोग कर रहे लिब्ज़ में से एक) एक सादे ऑब्जेक्ट throw रहे हैं जो एक Error नहीं है। खोजने और उसे ठीक करने का प्रयास करें

आपका कॉल इस तरह दिखना चाहिए:

api.getCurrentProcessInstanceTask().then(function(task) {
    return api.completeTask(task);
//  ^^^^^^
}).catch(function(err) {
// ^^^^^
    console.error(err);
});

मैंने ब्लूबर्ड वादों का उपयोग करना शुरू कर दिया है और मुझे भ्रामक त्रुटि मिल रही है

संहिता सार

var
  jQueryPostJSON = function jQueryPostJSON(url, data) {

    return Promise.resolve(
      jQuery.ajax({
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        type: "POST",
        url: url,
        data: JSON.stringify(data)
      })
    ).then(function(responseData) {
      console.log("jQueryPostJSON response " + JSON.stringify(responseData, null, 2));
      return responseData;
    });
  },
  completeTask = function completeTask(task, variables) {
    console.log("completeTask called for taskId: "+task.id);
    //FIXME reform variables according to REST API docs
    var variables = {
      "action" : "complete",
      "variables" : []
    };
    spin.start();
    return jQueryPostJSON(hostUrl + 'service/runtime/tasks/'+task.id, variables)
      .then(function() {
        gwl.grrr({
          msg: "Completed Task. Definition Key: " + task.taskDefinitionKey,
          type: "success",
          displaySec: 3
        });
        spin.stop();
        return null;
      });
  }

JQueryPostJSON फ़ंक्शन ठीक तरह से काम करता है जैसा कि जब दूसरे स्थान पर उपयोग किया जाता है, लेकिन उस स्थिति में सर्वर से लौटा डेटा होता है

जब इसे पूर्ण कार्य के भीतर उपयोग किया जाता है, तो पोस्ट सफल होता है, जैसा कि सर्वर साइड पर देखा जा सकता है, लेकिन कंसोल में इसके बजाय फ़ंक्शन को कभी भी कॉल नहीं किया जाता है I

completeTask called for taskId: 102552
bundle.js:20945 spin target: [object HTMLDivElement]
bundle.js:20968 spinner started
bundle.js:1403 Warning: a promise was created in a  handler but was not returned from it
    at jQueryPostJSON (http://localhost:9000/dist/bundle.js:20648:22)
    at Object.completeTask (http://localhost:9000/dist/bundle.js:20743:14)
    at http://localhost:9000/dist/bundle.js:21051:15
From previous event:
    at HTMLDocument.<anonymous> (http://localhost:9000/dist/bundle.js:21050:10)
    at HTMLDocument.handleObj.handler (http://localhost:9000/dist/bundle.js:5892:30)
    at HTMLDocument.jQuery.event.dispatch (http://localhost:9000/dist/bundle.js:10341:9)
    at HTMLDocument.elemData.handle (http://localhost:9000/dist/bundle.js:10027:28)
bundle.js:1403 Unhandled rejection (<{"readyState":4,"responseText":"","sta...>, no stack trace)

चेतावनी मुझे कारण मिलती है, वह समस्या नहीं है। यह अनियंत्रित अस्वीकृति और तथ्य यह है कि पोस्ट में कोई त्रुटि नहीं हुई थी।

रेखा 21050 यहाँ है मैं विभिन्न मॉड्यूल से कार्य करने के लिए इनमें से संयोजन का परीक्षण कर रहा हूं

jQuery(document).bind('keydown', 'ctrl+]', function() {
        console.log("test key pressed");
        api.getCurrentProcessInstanceTask()
        .then(function(task) {
          api.completeTask(task);
        });

      });

पहले फ़ंक्शन कॉल से आउटपुट कॉल api.getCurrentProcessInstanceTask () यह सही ढंग से काम कर रहा है यह इंगित करने के लिए लगता है, लेकिन यहां यह वैसे भी है

getCurrentProcessInstanceTask = function getCurrentProcessInstanceTask() {

      if (!currentProcess || !currentProcess.id) {
        return Promise.reject(new Error("no currentProcess is set, cannot get active task"));
      }

      var processInstanceId = currentProcess.id;

      return Promise.resolve(jQuery.get(hostUrl + "service/runtime/tasks", {
          processInstanceId: processInstanceId
        }))
        .then(function(data) {
          console.log("response: " + JSON.stringify(data, null, 2));
          currentProcess.tasks = data.data;
          // if(data.data.length > 1){
          //   throw new Error("getCurrentProcessInstanceTask expects single task result. Result listed "+data.data.length+" tasks!");
          // }
          console.log("returning task id: "+data.data[0].id);
          return data.data[0];
        });
    },




bluebird