कैसे VueJS Mixin में मान देने के लिए

वोट
2

मैं वर्तमान में Vuejs में एक webapp विकासशील कर रहा हूँ। मैं एक Mixin बनाया है कि मैं विश्व स्तर पर जो मेरे api के लिए किसी भी अनुरोध हैंडल का उपयोग कर सकते हैं:

export default {

  data() {
    return {
      apiURL: 'http://example.com/api',
      timeout: 10000,
    };
  },

  methods: {

    callAPI(method, url, body) {
      this.$http({
        url: this.apiURL + url,
        method,
        body,
        timeout: this.timeout,
      })
      .then((response) =>
        response,
      (response) => {
        if (response.data.error) {
            this.error = response.data.error;
        } else {
          this.error = 'We can\'t connect to the server. Please try again in a few minutes.';
        }
        return response;
      });
      // return 'test';
    },

  },

};

अब, मेरी घटकों में से कुछ में मैं एपीआई फ़ंक्शन को कॉल करें:

const api_response = this.callAPI('POST', '/auth', credentials);
alert (api_response);

यह ठीक काम करता है, लेकिन एक बात अपेक्षा के अनुरूप काम नहीं करता है। मैं अपने उम्मीद api_responseनिरंतर का मूल्य है करने के लिए response, लेकिन यह हमेशा होता है undefined। तो हर बार जब मैं के साथ इस चेतावनी मिल गया undefined। वो कैसे संभव है? जब मैं uncomment return 'test'लाइन यह काम करता है: मैं के साथ एक चेतावनी मिल गया testहै, लेकिन यह के भीतर काम नहीं लगती this.$httpहिस्सा ...

10/09/2016 को 13:56
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
1

आपका callAPIकोई है returnबयान, तो यह रिटर्न undefined। अगर यह आपकी लौटे $httpकॉल, यह अभी भी आप देना होगा नहीं response, लेकिन हो सकता है एकPromise है, तो आप की तरह कुछ करने के लिए चाहते हो जाएगा

let api_response;
this.callAPI('POST', '/auth', credentials).then((response) => api_response = response);
11/09/2016 को 11:45
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more